Light-Field Imaging 101

A comprehensive introduction to unfocused light-field imaging (plenoptic 1.0)

Author

David Nguyen

Published

April 26, 2025

Intended Audience

This guide aims to expand upon existing unfocused light-field (plenoptic 1.0) imaging learning material by providing detailed Python implementations of light-field image processing along with examples. The light-field image processing workflow closely follows that of the MATLAB-based Light-Field Imaging Toolkit (Bolan et al. 2016), but leverages Python’s open-source ecosystem and Quarto’s enhanced capabilities for visualization and LaTeX formula integration.

By focusing specifically on the image processing aspects, this guide helps readers better understand the technical limitations and practical considerations of light-field imaging techniques. This guide assumes the reader is familiar with unfocused light-field imaging. Such an understanding can be achieved by browsing plenoptic.info or reading the unfocused light-field part of the Light-Field Camera Working Principles chapter (Pages 11-25) of the book Development and Application of Light-Field Cameras in Fluid Measurements (Shi and New 2023).

Raw images

To illustrate light-field image processing concepts, a synthetic raw light-field image was generated. The raw light-field image describes the pixel intensities recorded by an unfocused light-field camera.

Code
import tifffile
import plotly.express as px

raw_light_field = tifffile.imread('raw-light-field.tif')

fig = px.imshow(
    raw_light_field,
    color_continuous_scale='gray',
    aspect='equal'
)

fig.show()

References

Bolan, Jeffrey, Elise Hall, Chris Clifford, and Brian Thurow. 2016. “Light-Field Imaging Toolkit.” SoftwareX 5: 101–6.
Shi, Shengxian, and TH New. 2023. Development and Application of Light-Field Cameras in Fluid Measurements. Springer.